/******************************************
 * GraphicsWindow.h - contains class to set up
 * a windows opengl window or a GLUT opengl
 * window.
 ******************************************/

#ifndef GRAPHICSWINDOW_H
#define GRAPHICSWINDOW_H

#include "GraphicsWindowPreprocessor.h"

#define KEY_PAGE_UP		33
#define KEY_PAGE_DOWN	34
#define KEY_LEFT		37
#define KEY_UP			38
#define KEY_RIGHT		39
#define KEY_DOWN		40

#if defined(WIN_WIN)

#include <windows.h>
#include <string>

#include "gl.h"
#include "glu.h"
#include "GraphicsWindowPrimer.h"
#include "GraphicsWindowStatics.h"

using namespace std;



class GraphicsWindow : public GraphicsWindowPrimer {
	public:

		GraphicsWindow();
		~GraphicsWindow();

	protected:

		GraphicsWindowStatics gws;

		void createWindow(string winName, int w, int h, int x, int y, bool fullscreen);

		void startWindow();
		void postRedisplay();
		void swapBuffers();
		void killWindow();

	private:
		
};


/*----------------------------------------------------------------------------*/


#elif defined(GLUT_WIN)


#include <string>

#include "GraphicsWindowPrimer.h"
#include "GraphicsWindowStatics.h"


using namespace std;


class GraphicsWindow : public GraphicsWindowPrimer{

	public:		   
		
		GraphicsWindow();
		~GraphicsWindow();

	protected:
		
		bool windowGood;
		GraphicsWindowStatics gws;

		void createWindow(string winName, int w, int h, int x, int y, bool fullscreen);
		
		void startWindow();
		void postRedisplay();
		void swapBuffers();
		void killWindow();

	private:
};

#endif




#endif	  /*  GraphicsWindow_H  */